﻿using SIIE_ERP.Codigo;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SIIE_ERP.BaseDatos.CRM.Catalogos
{
    public class dbo_Cat_Competidor
    {
        #region Propiedades

        private string _RFC;
        private string _Usuario;

        #endregion
        
        #region Constructores

        public dbo_Cat_Competidor(string RFC, string Usuario)
        {
            this._RFC = RFC;
            this._Usuario = Usuario;
        }

        #endregion
        
        #region INSERT

        public Respuesta Insert_Competidor(
            
	        string Nombre,
	        string Descripcion,
	        string SitioWeb,
	        string Direccion,
	        string ProductoServicio,
	        string InfoGral,
	        string Fortalezas,
	        string Oportunidades,
	        string Debilidades,
	        string Amenazas            
        )
        {
            try
            {
                string Query = @"INSERT INTO dbo_Cat_Competidor
                             (
                                	Id_Competidor,
	                                RFC,
	                                Nombre,
	                                Descripcion,
	                                SitioWeb,
	                                Direccion,
	                                ProductoServicio,
	                                InfoGral,
	                                Fortalezas,
	                                Oportunidades,
	                                Debilidades,
	                                Amenazas,
	                                Fecha_Alta,
	                                Usuario_Alta,
	                                Fecha_Mantto,
	                                Usuario_Mantto
                             )
                             VALUES
                             (
                                IIF(DCount('*', 'dbo_Cat_Competidor') = 0, 1, DMax('Id_Competidor', 'dbo_Cat_Competidor') + 1),
                                '@@RFC',                                	                            
	                            '@@Nombre',
	                            '@@Descripcion',
	                            '@@SitioWeb',
	                            '@@Direccion',
	                            '@@ProductoServicio',
	                            '@@InfoGral',
	                            '@@Fortalezas',
	                            '@@Oportunidades',
	                            '@@Debilidades',
	                            '@@Amenazas',
                                NOW(),
                                '@@Usuario_Alta',
                                NOW(),
                                '@@Usuario_Mantto'
                             )";

                Query = Query.Replace("@@RFC", this._RFC);
                Query = Query.Replace("@@Nombre", Nombre.Replace("'", "''"));
                Query = Query.Replace("@@Descripcion", Descripcion.Replace("'", "''"));
                Query = Query.Replace("@@SitioWeb", SitioWeb);
                Query = Query.Replace("@@Direccion", Direccion);
                Query = Query.Replace("@@ProductoServicio", ProductoServicio);
                Query = Query.Replace("@@InfoGral", InfoGral);
                Query = Query.Replace("@@Fortalezas", Fortalezas);
                Query = Query.Replace("@@Oportunidades", Oportunidades);
                Query = Query.Replace("@@Debilidades", Debilidades);
                Query = Query.Replace("@@Amenazas", Amenazas);                
                Query = Query.Replace("@@Usuario_Alta", this._Usuario);
                Query = Query.Replace("@@Usuario_Mantto", this._Usuario);

                return SrvDB.ExecuteQuery_Insert(Query);
                
                
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }            
        }

        #endregion

        #region UPDATE

        public Respuesta Update_Competidor_Por_Id(
            object Id,
            string Nombre,
            string Descripcion,
            string SitioWeb,
            string Direccion,
            string ProductoServicio,
            string InfoGral,
            string Fortalezas,
            string Oportunidades,
            string Debilidades,
            string Amenazas             
        )
        {
            try
            {
                string Query = @"UPDATE dbo_Cat_Competidor SET
                                    
                                    Nombre = '@@Nombre',
	                                Descripcion = '@@Descripcion',
	                                SitioWeb = '@@SitioWeb',
	                                Direccion = '@@Direccion',
	                                ProductoServicio = '@@ProductoServicio',
	                                InfoGral = '@@InfoGral',
	                                Fortalezas = '@@Fortalezas',
	                                Oportunidades = '@@Oportunidades',
	                                Debilidades = '@@Debilidades',
    	                            Amenazas = '@@Amenazas',

                                    Fecha_Mantto = NOW(),
                                    Usuario_Mantto = '@@Usuario_Mantto'

                                 WHERE Id_Competidor = @@Id";
                                
                Query = Query.Replace("@@RFC", this._RFC);
                Query = Query.Replace("@@Nombre", Nombre.Replace("'", "''"));
                Query = Query.Replace("@@Descripcion", Descripcion.Replace("'", "''"));
                Query = Query.Replace("@@SitioWeb", SitioWeb);
                Query = Query.Replace("@@Direccion", Direccion);
                Query = Query.Replace("@@ProductoServicio", ProductoServicio);
                Query = Query.Replace("@@InfoGral", InfoGral);
                Query = Query.Replace("@@Fortalezas", Fortalezas);
                Query = Query.Replace("@@Oportunidades", Oportunidades);
                Query = Query.Replace("@@Debilidades", Debilidades);
                Query = Query.Replace("@@Amenazas", Amenazas);
                Query = Query.Replace("@@Usuario_Alta", this._Usuario);
                Query = Query.Replace("@@Usuario_Mantto", this._Usuario);
                Query = Query.Replace("@@Id", ((Int32)Id).ToString());

                return SrvDB.ExecuteQuery_Update(Query);
                
                
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }
        }

        #endregion

        #region DELETE

        public Respuesta Delete_Competidor_Por_Id(
            object Id
        )
        {
            try
            {
                string Query = @"DELETE FROM dbo_Cat_Competidor 
                                    WHERE Id_Competidor = @@Id";

                Query = Query.Replace("@@Id", ((Int32)Id).ToString());

                return SrvDB.ExecuteQuery_Delete(Query);
                
                
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }
        }

        #endregion

        #region SELECT

        public DataTable Get_Competidor_Por_Id(object Id)
        {

            string Query = "SELECT * FROM dbo_Cat_Competidor WHERE Id_Competidor = @@Id";
            Query = Query.Replace("@@Id", ((Int32)Id).ToString());

            return SrvDB.ExecuteQuery_Get(Query);
        }

        public DataTable Get_Competidor_Por_Nombre(string Nombre)
        {

            string Query = "SELECT * FROM dbo_Cat_Competidor WHERE Nombre = '@@Nombre' AND RFC = '@@RFC'";
            Query = Query.Replace("@@Nombre", Nombre.Replace("'", "''"));
            Query = Query.Replace("@@RFC", this._RFC);

            return SrvDB.ExecuteQuery_Get(Query);
        }

        public DataTable Get_Competidors()
        {
            string Query = "SELECT * FROM dbo_Cat_Competidor WHERE RFC = '@@RFC'";
            Query = Query.Replace("@@RFC", this._RFC);

            return SrvDB.ExecuteQuery_Get(Query);
        }

        #endregion
    }
}
